import type { EditFormat } from '#swe/coder/coderTypes';

export const SEARCH_MARKER = '<<<<<<< SEARCH';
export const DIVIDER_MARKER = '=======';
export const REPLACE_MARKER = '>>>>>>> REPLACE';

export const COMMON_LANGUAGES = [
	'python',
	'javascript',
	'typescript',
	'java',
	'c',
	'cpp',
	'csharp',
	'go',
	'ruby',
	'php',
	'swift',
	'kotlin',
	'rust',
	'scala',
	'perl',
	'lua',
	'r',
	'shell',
	'bash',
	'sql',
	'html',
	'css',
	'xml',
	'json',
	'yaml',
	'tf',
	'terraform',
	'markdown',
	'text',
	'py',
	'js',
	'ts',
	'md',
];

export const MODEL_EDIT_FORMATS: Record<string, EditFormat> = {
	'claude-3-5-haiku': 'diff',
	'claude-3-5-sonnet': 'diff',
	'claude-3-7-sonnet': 'diff',
	'claude-3-opus': 'diff',
	'claude-3-sonnet': 'whole',
	'claude-haiku': 'whole',
	'claude-opus-4': 'diff',
	'claude-sonnet-4': 'diff',
	'command-a': 'whole',
	'command-r': 'whole',
	'command-r-plus': 'whole',
	'deepseek-chat': 'diff',
	'deepseek-coder': 'diff',
	'deepseek-r1': 'diff',
	'gemini-1.5-flash': 'whole',
	'gemini-1.5-pro': 'diff-fenced',
	'gemini-2.0-flash': 'diff',
	'gemini-2.5-flash': 'diff',
	'gemini-2.5-pro': 'diff-fenced',
	'gemini-exp': 'diff',
	'gemma-3-27b-it': 'whole',
	'gpt-4.1': 'diff',
	'gpt-4.1-mini': 'diff',
	'gpt-4.5-preview': 'diff',
	'gpt-4o': 'diff',
	'grok-3-beta': 'diff',
	'grok-3-mini-beta': 'whole',
	'llama-3-70b-instruct': 'diff',
	o1: 'diff',
	'o1-mini': 'whole',
	'o1-preview': 'architect',
	o3: 'diff',
	'o3-mini': 'diff',
	'o4-mini': 'diff',
	'optimus-alpha': 'diff',
	'quasar-alpha': 'diff',
	'qwen-2.5-coder-32b-instruct': 'diff',
};
